import { LocationQueryRaw } from 'vue-router'

export class StrUtil {
	static uuid(length = 32): string {
		const num = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
		let str = ''
		for (let i = 0; i < length; i++) {
			str += num.charAt(Math.floor(Math.random() * num.length))
		}
		return str
	}

	/**
	 * 获取字符串内的参数对象
	 * */
	static getParam(url): LocationQueryRaw {
		const arr = url.split('?')[1].split('&') // 先通过？分解得到？后面的所需字符串，再将其通过&分解开存放在数组里
		const obj = {}
		for (const i of arr) {
			obj[i.split('=')[0]] = i.split('=')[1] // 对数组每项用=分解开，=前为对象属性名，=后为属性值
		}
		return obj
	}


	static isJSON(str) {
		if (typeof str !== 'string') { // 1、传入值必须是 字符串
			console.log(`It is not a string! [${  str  }]`)
			return false;
		}

		try {
			const obj = JSON.parse(str); // 2、仅仅通过 JSON.parse(str)，不能完全检验一个字符串是JSON格式的字符串
			if (typeof obj === 'object' && obj) {  // 3、还必须是 object 类型
				console.log(`转换成功：${  str}`);
				return true;
			} 
				console.log(`转换失败：${  str}`);
				return false;
			

		} catch (e) {
			console.log(`error：[${  str  }] !!! ${  e}`);
			return false;
		}
	}

	static replaceHtml  (str:string):string {
		return str.replace(/<.*?>/g,"")
	}
}